home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / net / k20menus.lzh / k20file.c < prev    next >
C/C++ Source or Header  |  1994-09-10  |  2KB  |  76 lines

  1. /*    Copyright 1992 H.Ogasawara(COR.)    */
  2.  
  3. #include    <stdio.h>
  4. #include    <sys_doslib.h>
  5.  
  6. extern char    NetMenuFile[];
  7.  
  8. extern int    optins;
  9.  
  10. #if 0
  11. FILE    *fp;
  12. tmpopen( tmpbuf )
  13. {
  14.     FILE    *fp;
  15.     if( GETENV( "TEMP", tmpbuf, NULL ) < 0 )
  16.         *tmpbuf= '\0';
  17.     strcat( tmpbuf, "k20_tmpfile.000" );
  18.     while( fp= fopen( tmpbuf, "r" ) ){
  19.         fclose( fp );
  20.         tmpbuf[strlen( tmpbuf )-3]++;
  21.     }
  22.     freopen( tmpbuf, "w", fp );
  23.     return    fp;
  24. }
  25. #endif
  26.  
  27. add_netlist( addline, key )
  28. char    *addline, *key;
  29. {
  30.     FILE    *fp, *fo;
  31.     if( fp= fopen( NetMenuFile, "r" ) ){
  32.         short    mod= 0;
  33.         char    tmpfile[80],
  34.             backup[80],
  35.             linebuf[512];
  36.         char    *p;
  37.         strcpy( tmpfile, NetMenuFile );
  38.         strcpy( strrchr( tmpfile, '.' ), ".tmp" );
  39.         strcpy( backup, NetMenuFile );
  40.         strcpy( strrchr( backup, '.' ), ".bak" );
  41.         DELETE( tmpfile );
  42.         if( !(fo= fopen( tmpfile, "w" )) ){
  43.             fclose( fp );
  44.             return    0;
  45.         }
  46.         fgets(linebuf,512,fp); fputs(linebuf,fo);
  47.         fgets(linebuf,512,fp); fputs(linebuf,fo);
  48.         while( fgets(linebuf,512,fp) ){
  49.             char    buf[40];
  50.             getword( buf, linebuf );
  51.             if( !mod && !strcmp( buf, key ) ){
  52.                 mod= 1;
  53.                 if( *addline ){
  54.                     fputs( addline, fo );
  55.                     fputc( '\n', fo );
  56.                     if( optins )
  57.                         fputs(linebuf,fo);
  58.                 }
  59.             }else
  60.                 fputs(linebuf,fo);
  61.         }
  62.         if( !mod && *addline ){
  63.             fputs( addline, fo );
  64.             fputc( '\n', fo );
  65.         }
  66.         fclose( fo );
  67.         fclose( fp );
  68.         DELETE( backup );
  69.         RENAME( NetMenuFile, backup );
  70.         RENAME( tmpfile, NetMenuFile );
  71.         return    1;
  72.     }
  73.     return    0;
  74. }
  75.  
  76.